# _*_ coding:utf-8 _*_
"""
description:获取test_yaml文件，返回数据
"""
import yaml
from common.Log import LOG


class get_yaml:

    def __init__(self, filepath):
        self.path = filepath

    def get_yaml(self):
        """
        加载yaml文件
        :return: 返回yaml文件内容
        """
        try:
            f = open(self.path, encoding='utf-8')
            data = yaml.load(f, Loader=yaml.FullLoader)  # 加上Loader=yaml.FullLoader就不会出现warning
            f.close()
            return data
        except Exception as e:
            LOG.error("加载yaml文件失败:%s" % e)

    def allData(self):
        """
        读取yaml文件数据
        :return: 返回数据
        """
        data = self.get_yaml()
        return data

    def findElementsLen(self):
        """
        findelements字典长度
        :return: findelements对应value的个数
        """
        data = self.get_yaml()
        length = len(data['findelements'])
        return length

    def get_elementInfo(self, i):
        """
        获取findelements下的element_info元素
        :param i: 位置索引号，0开始
        :return: 返回element_info元素数据
        """
        data = self.allData()
        return data['findelements'][i]['element_info']

    def get_find_type(self, i):
        """
        获取findelements下的find_type元素数据
        :param i: 位置索引号，0开始
        :return: 返回find_type元素数据
        """
        data = self.allData()
        return data['findelements'][i]['find_type']

    def get_operate_type(self, i):
        """
        获取findelements下的operate_type元素数据
        :param i: 位置索引号，0开始
        :return: 返回operate_type元素数据
        """
        data = self.allData()
        return data['findelements'][i]['operate_type']
